Skip to content

ci: apply global GH Actions cost-mitigation policy#8

Merged
sunrunnerfire merged 1 commit into
mainfrom
gh-actions-cost-policy-phase-b
May 27, 2026
Merged

ci: apply global GH Actions cost-mitigation policy#8
sunrunnerfire merged 1 commit into
mainfrom
gh-actions-cost-policy-phase-b

Conversation

@sunrunnerfire
Copy link
Copy Markdown
Contributor

Aligns the three workflow files under .github/workflows/ with the global GitHub Actions cost-mitigation policy (dotfiles/CLAUDE.md <github_actions_policy>, eight rules).

Audit checklist

ci.yml

Rule Status Change
1. Concurrency cancellation normalized group renamed from ci-${{ github.ref }} to ${{ github.workflow }}-${{ github.ref }} (canonical form)
2. Fail-fast needs: chains applied test-linux, test-macos, build-matrix, amd-gpu-integration all gain needs: [lint]
3. Path filtering applied paths-ignore: [docs/**, **/*.md, LICENSE] on push + pull_request
4. Consolidate micro-lints already consolidated lint job already does gofmt + go vet sequentially
5. Schedule trigger audit n/a no schedule: trigger
6. Dependabot scope filter applied test-macos, build-matrix, amd-gpu-integration skip on dependabot PRs unless dependabot-full-ci labelled (saves the macos 10× cost multiplier on every cuda-bindings bump)
7. High-cost gates merge-only partially applied amd-gpu-integration is self-hosted with continue-on-error: true; intentionally left as PR-gated so HW regressions surface on the PR, not at merge-queue time. Per CLAUDE.md absolute rule #5 the [amd-gpu] runner IS the merge gate.
8. Self-hosted runner fork guard applied amd-gpu-integration now checks pull_request.head.repo.full_name == github.repository — fork PRs cannot trigger the Mac Pro runner

rebase-upstream.yml

Rule Status Change
1. Concurrency cancellation added canonical block — back-to-back manual workflow_dispatch runs no longer both burn macos-latest minutes
5. Schedule trigger audit added # why: comment on the Monday 08:00 UTC cron explaining why weekly (daily would drown maintainer review)

release.yml

Rule Status Change
1. Concurrency cancellation (artifact exception) added cancel-in-progress: false — second tag push cannot cancel an in-flight notarize/publish run

Why no Rule 4 consolidation

This is a Go repo. The single lint job already runs gofmt -l + go vet as sequential steps in one runner. No 30-45 sec runner-startup multiplication to eliminate.

Verification

  • python3 -c "import yaml; yaml.safe_load(...)" → all three files parse clean
  • Diff scope: 3 files, +50/-3 lines, no functional changes outside the cost policy

Part of the multi-repo migration to the global GH Actions cost policy.

Aligns the three workflow files with the global GH Actions cost policy
documented in dotfiles/CLAUDE.md.

ci.yml:
- normalize concurrency group to ${{ github.workflow }}-${{ github.ref }}
- add paths-ignore for docs/ and *.md on push + pull_request triggers
- add needs: [lint] to test-linux, test-macos, build-matrix,
  amd-gpu-integration so a 10-second lint failure short-circuits the
  rest (Rule 2)
- gate test-macos + build-matrix + amd-gpu-integration on dependabot
  scope filter (Rule 6) — dependabot PRs skip the macos minutes unless
  labelled dependabot-full-ci
- guard amd-gpu-integration against fork PRs (Rule 8) so external
  contributor PRs cannot trigger the self-hosted runner

rebase-upstream.yml:
- add canonical concurrency block (Rule 1)
- add # why: comment to the Monday 08:00 UTC cron explaining the cadence
  (Rule 5)

release.yml:
- add concurrency block with cancel-in-progress: false (Rule 1 exception
  for artifact-publishing workflows) so a second tag push does not
  cancel the first mid-keychain-setup or mid-notarize
@sunrunnerfire sunrunnerfire merged commit 0bf44a6 into main May 27, 2026
6 checks passed
@sunrunnerfire sunrunnerfire deleted the gh-actions-cost-policy-phase-b branch May 27, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant